On computers, applications request, use, and release memory. For example, when an application opens a file, the application or other component may request memory for creating data structures related to the file. As another example, when a user browses to a Web site, a Web browser may request memory for storing content from the Web site in preparation for rendering the content on a display. After the user closes the browser, the Web browser may indicate that the memory used for storing and rendering content of the previous Web site may be released and returned to a memory pool.
Servers that handle requests from other computers often have greater pressure to efficiently use memory than client computers. In both client and server machines, an inefficient memory manager may waste memory and lead to poor performance. Unfortunately, a memory manager that works well with some memory consumers may not work well with other memory consumers.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.